//
// Created by sjjmw on 2/23/2022.
//

#pragma clang diagnostic push
#pragma ide diagnostic ignored "EndlessLoop"
#ifndef LEETCODE__17_H
#define LEETCODE__17_H

//todo
// 假设有k个人质和k个绑匪围成一圈。人质的编号从1到k，绑匪的编号从k+1到2k。
// 从编号1开始，每次从其中选出第m个人(隔m-1选出一人)出列。
// 希望求出m的最小值，使得最先出列的k个人都是绑匪，即都是编号从k+1到2k的人。
#include "iostream"
#include "vector"
//给你一条马路的长度和若干个车站的位置，请你用程序计算出把树移走后，马路上还剩多少棵树。

int main(){

    int l,m;
    while(scanf("%d %d",&l,&m)!=EOF){
        int cnt=0;
        int index=0,bs=0;
        std::vector<char> tag(l);
        int left_cnt=l;
        while(left_cnt){
            while(tag[index]){
                index++;
                index%=l;
            }
            if(bs==m-1){
                bs=0;
                printf("%d",index+1);
                if(left_cnt!=1){
                    printf(" ");
                }
                tag[index]=1;
                left_cnt--;
            }else{
                bs++;
            }
            index++;
            index%=l;
        }
        printf("\n");
    }
//    while(1){}
    return 0;
}

#endif //LEETCODE__17_H

#pragma clang diagnostic pop